<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link href="Doc.css" rel="stylesheet"/>
<title>TreeGrid - Files</title>
</head>
<body>
<div class="Doc">


<h1>TreeGrid files</h1>
<p>TreeGrid documentation</p>

All required files are in one directory. In default distribution is this directory "<b>Grid\</b>".<br /> 
All files can be moved or renamed, but these changes must be registered. For every file is noted, where you have to do the changes.<br /> 
By default you must preset location for main script file <b>GridE.js</b>. All other files are by default searched in the same directory as <b>GridE.js</b>.<br />
All files may be modified except <b>GridE.js</b>.<br />

<!-- GridE.js -->
<a name="GridEJs"></a>
<div class="XML">
   <u><i>upd <b>15.0</b></i></u> <b>required</b> <i>JS</i>
   <h4>GridE.js</h4> <s>/Grid/</s>
</div>
Main JavaScript code. You must include reference to this file in &lt;head> section on HTML page.<br /> 
<tt>&lt;script src="../Grid/GridE.js"> &lt;/script></tt><br /> 
To ensure the newest script is loaded, add some version parameter to it like <tt>&lt;script src="../Grid/GridE.js?v11_0"> &lt;/script></tt><br />
<i>Since 14.1</i> you can include <b>GridED.js</b> short script instead to download the main <b>GridE.js</b> script on demand only.<br />
<strong>It is forbidden to modify the GridE.js&nbsp; file!</strong><br />
<i>Remember, all other required files are searched by default in the same directory as the GridE.js file.</i><br />
<br />
<i>(Since 15.0)</i> If purchased TreeGrid source codes, it is possible to compile GridE.js including all required files to create standalone script without any loading of other TreeGrid files.<br />
It is possible to include Defaults.xml/js, Text.xml/js, language TextXX.xml/js files, JSZip JavaScript file(s), canvg script and responsive CSS style files. And also any xml/json layout / data files.<br />
Description how to do it is in the compiler ini file.<br />

<!--GridED.js-->
<a name="GridEDJs"></a>
<a name="LoadGridE"></a>
<div class="XML">
   <u>new <b>14.1</b></u> <b>conditional</b> <i>JS</i>
   <h4>GridED.js</h4> <s>/Grid/</s>
</div>
<i>Renamed and updated from GridEOnDemand.js.</i><br />
Short script that can be included instead of main <b>GridE.js</b> script to load the main script <a href="#GridEJs">GridE.js</a> on demand only.<br />
<i>It must be placed in the same directory as GridE.js and both the GridE.js and GridED.js files must not be renamed.</i><br />
It loads the GridE.js file automatically when: <br />
a) The page contains some <a href="Create.htm#TagTreeGrid">&lt;treegrid></a> / <a href="Create.htm#TagBdo">&lt;bdo></a> tag on the page load or on load the GridED.js.<br />
b) If called global function: <a href="Create.htm#TreeGrid">TreeGrid</a>(), 
<a href="Create.htm#StartTreeGrid">StartTreeGrid</a>(), <a href="ExportPDF.htm#PrintTreeGrid">PrintTreeGrid</a>(), 
<a href="Events.htm#TGSetEvent">TGSetEvent</a>(), <a href="Events.htm#TGAddEvent">TGAddEvent</a>(),
<a href="GanttZoom.htm#AddGanttUnits">AddGanttUnits</a>()
<br />
The <a href="Create.htm#Grids">Grids</a> object can be used to define API events normally before the GridE.js is loaded.<br />
Also <a href="Create.htm#GetGrids">GetGrids</a>, <a href="Events.htm#TGGetEvent">TGGetEvent</a> and <a href="Events.htm#TGDelEvent">TGDelEvent</a> global functions can be called before the GridE.js is loaded, although they have no effect.<br />
<i>No other TreeGrid global API functions like DateToString, ShowMenu or AjaxCall can be called before GridE.js is loaded.</i><br />
Check global <b>window.TGComponent</b> to know if the GridE.js is already loaded.<br />
<i>If used, the TreeGrid() and PrintTreeGrid() functions return grid object not yet initialized only with Source attribute set.</i><br />
<i>GridED.js script should <u>not</u> be used with <b>PrintTreeGrid</b>() if the function is expected to be synchronous, e.g. when printing to <b>PDF</b>.</i>
<br />
To load GridE.js manually is possible by calling <u><b>LoadGridE</b></u> (<b>path</b>, <b>func</b>) function.<br />
The <b>path</b> is url of GridE.js file like "../Grid/GridE.js". The <b>path</b> can be relative to the main page url as usual or can be absolute.<br />
For empty <b>path</b> is used the path to the GridED.js if exists.
Check the script path carefully, the most errors are caused because of wrong path.<br />
The LoadGridE is asynchronous function, set <b>func</b> to be called after the script is loaded.<br />

<!--GridEOnDemand.js-->
<a name="GridEOnDemandJs"></a>
<div class="DEL">
   <u>Deleted <b>14.1</b></u> <b></b> <i>JS</i>
   <h4>GridEOnDemand.js</h4> <s>/Grid/</s>
</div>
Renamed and updated to <a href="#GridEDJs">GridED.js</a>.<br />

<!--GridEStandalone.js-->
<a name="GridEStandaloneJs"></a>
<a name="LoadGridE"></a>
<div class="XML">
   <u>new <b>14.1</b></u> <b>conditional</b> <i>JS</i>
   <h4>GridEStandalone.js</h4> <s>/Grid/</s>
</div>
<i>Sample of TreeGrid bundle.</i> It can be included instead of main <a href="#GridEJs">GridE.js</a>.<br />
It is standalone file containing all TreeGrid required files, it does not load anything from server except the application data and layout.<br />
This sample bundle contains Default.xml, Text.xml, all language files, CSS style Standard for grid and dialogs, CSS style White for Gantt, JSZip, canvg.<br />
The GridEStandandalone.js can be loaded also by GridED.js if renamed to GridE.js.<br />
<i>If purchased TreeGrid sources it is possible to compile any such bundle containing any data files or styles or even application layout and data xml/json files.</i><br />


<!--Defaults.xml-->
<a name="DefaultsXml"></a>
<div class="XML">
   <u></u> <b>required</b> <i>XML</i>
   <h4>Defaults.xml</h4> <s>/Grid/</s>
</div>
Data source file with predefined values for all required TreeGrid parameters, for all grids.<br />
<i>This file should not be changed to avoid problems with upgrading to new TreeGrid version.</i><br />
To predefine default values for all your grids use <b>Base</b> data source.<br />
Path and name and/or place you can change in &lt;treegrid>/&lt;bdo> attribute prefix <b>Defaults_</b>.<br />
This file can be loaded as static file or can be generated by web page or service or can be included in HTML page.<br />
<i>Since 15.0</i> If the data sources contain only .js / .json files or <a href="DataCommunication.htm#CfgJson">Json</a> attribute is set, there is loaded <a href="#DefaultsJs">Defaults.js</a> instead of Defaults.xml.<br />
<a href="../Grid/Defaults.xml">See the Defaults.xml content</a><br />

<!--Defaults.js-->
<a name="DefaultsJs"></a>
<div class="XML">
   <u>new <b>15.0</b></u> <b>conditional</b> <i>JSON</i>
   <h4>Defaults.js</h4> <s>/Grid/</s>
</div>
Defaults version in JSON format. It contains the same values as <a href="#DefaultXml">Defaults.xml</a>.<br />
It is loaded instead of <a href="#DefaultXml">Defaults.xml</a> if the data sources refers to .js / .json files or if <a href="DataCommunication.htm#CfgJson">Json</a> attribute is set.<br />
<a href="../Grid/Defaults.js">See the Defaults.js content</a><br />

<!--Text.xml-->
<a name="TextXml"></a>
<div class="XML">
   <u></u> <b>required</b> <i>XML</i>
   <h4>Text.xml</h4> <s>/Grid/</s>
</div>
Data source file with all TreeGrid texts and messages and language dependent constants for formatting numbers and dates.<br />
Path and name and/or place you can change in &lt;treegrid>/&lt;bdo> attribute prefix <b>Text_</b>.<br />
This file can be loaded as static file or can be generated by web page or service or can be included in HTML page.<br />
This file is for English language.<br />
You can translate this file to any other languages and also return appropriate language file according to client browser settings.<br />
<i>Since 15.0</i> If the data sources contain only .js / .json files or <a href="DataCommunication.htm#CfgJson">Json</a> attribute is set, there is loaded <a href="#TextJs">Text.js</a> instead of Text.xml.<br />
<a href="../Grid/Text.xml">See the Text.xml content</a><br />

<!--Text.js-->
<a name="TextJs"></a>
<div class="XML">
   <u>new <b>15.0</b></u> <b>conditional</b> <i>JSON</i>
   <h4>Text.js</h4> <s>/Grid/</s>
</div>
Text version in JSON format. It contains the same values as <a href="#TextXml">Text.xml</a>.<br />
It is loaded instead of <a href="#TextXml">Text.xml</a> if the data sources refers to .js / .json files or if <a href="DataCommunication.htm#CfgJson">Json</a> attribute is set.<br />
<a href="../Grid/Text.js">See the Text.js content</a><br />

<!--TextXX.xml-->
<a name="TextXXXml"></a>
<div class="XML">
   <u>new <b>14.0</b></u> <b>conditional</b> <i>XML</i>
   <h4>TextXX.xml</h4> <s>/Grid/Languages/</s>
</div>
Language file loaded instead of <a href="#TextXml">Text.xml</a> if Cfg Language is set.
The <b>XX</b> is the Language value, e.g. DE or JP.<br />
The TextXX.xml is referenced by default in <a href="#DefaultsXml">Defaults.xml</a>, in &lt;Languages> section, &lt;L> language tags, in Text_Url attribute.<br />
<i>Since 15.0</i> If the data sources contain only .js / .json files or <a href="DataCommunication.htm#CfgJson">Json</a> attribute is set, there is loaded <a href="#TextXXJs">TextXX.js</a> instead of TextXX.xml.<br />
<a href="../Grid/Languages/TextDE.xml">See the TextDE.xml content in German language.</a><br />

<!--TextXX.js-->
<a name="TextXXJs"></a>
<div class="XML">
   <u>new <b>15.0</b></u> <b>conditional</b> <i>JSON</i>
   <h4>TextXX.js</h4> <s>/Grid/Languages/</s>
</div>
TextXX version in JSON format. It contains the same values as given <a href="#TextXXXml">TextXX.xml</a>.<br />
It is loaded instead of <a href="#TextXXXml">TextXX.xml</a> if the data sources refers to .js / .json files or if <a href="DataCommunication.htm#CfgJson">Json</a> attribute is set.<br />
<a href="../Grid/Languages/TextDE.js">See the TextDE.js content in German language.</a><br />

<!--Grid.css-->
<a name="GridCss"></a>
<div class="XML">
   <u>new <b>13.0</b></u> <b>required</b> <i>CSS</i>
   <h4><i>style_name</i>Grid.css</h4> <s>/Grid/Styles/</s>
</div>
<b>Responsive</b> cascade style sheets for TreeGrid.<br />
Compatible with IE9+ and all modern browsers. A few minor features are disabled in IE9 and IE10.<br />
The file name prefix <i>style_name</i> is the style name, e.g. White.<br />
The CSS file includes all required images. The only external files not included by default in the CSS file is the TTF font file.<br />
The CSS file can be easily modified by changing its css sources in GridSrc/Grid/style_name/<a href="#GridCssSrc">Grid.css</a> and compiled by ../GridSrc/<b>ShrinkCSS.exe</b>.<br />
<b>How to change CSS styles is described in comments in the source Grid.css and Gantt.css.</b><br />
There are actually five predefined responsive CSS styles for TreeGrid.<br />
Every style has its own class prefix, so more <b>Grid.css</b> styles can be included to one page at once.<br /> 
TreeGrid can have set different responsive CSS style for grid and Gantt. The Grid.css and Gantt.css use different class prefixes.<br />
The actual grid style is set by <tt>&lt;Cfg <b>Style</b>='...'/></tt> attribute.
If the Grid.css is moved, its path can be set by <tt>&lt;Cfg <b>CSS</b>='...'/></tt>, relative to the actual page URL. <br />
Responsive CSS style can set their size by <tt>&lt;Cfg <b>Size</b>='...'/></tt>. 
There are nine predefined sizes: Tiny, Mini, Small, Low, Normal, Wide, High, Big, Giant.<br />
Only one style can be used by one grid at a time, but you can switch the styles at runtime. Also every grid on page can have its own style chosen.<br />
All files of unused CSS styles can be deleted if required.<br />

<!--Dialog.css-->
<a name="DialogCss"></a>
<div class="XML">
   <u>new <b>13.0</b></u> <b>required</b> <i>CSS</i>
   <h4><i>style_name</i>Dialog.css</h4> <s>/Grid/Styles/</s>
</div>
<b>Responsive</b> cascade style sheets for TreeGrid dialogs, menus, messages, inline edit, debug print, line chart and animations.<br />
Compatible with IE9+ and all modern browsers. A few minor features are disabled in IE9 and IE10.<br />
The file name prefix <i>style_name</i> is the style name, e.g. White.<br />
The CSS file includes all required images. The only external files not included by default in the CSS file is the TTF font file.<br />
The CSS file can be easily modified by changing its css sources in GridSrc/Dialog/style_name/<a href="#DialogCssSrc">Dialog.css</a> and compiled by ../GridSrc/<b>ShrinkCSS.exe</b>.<br />
<b>How to change CSS styles is described in comments in the source Dialog.css.</b><br />
The Dialog.css has the same CSS class prefix as <a href="GridCss">Grid.css</a><br />

<!--Gantt.css-->
<a name="GanttCss"></a>
<div class="XML">
   <u>new <b>13.0</b></u> <b>conditional</b> <i>CSS</i>
   <h4><i>style_name</i>Gantt.css</h4> <s>/Grid/Styles/</s>
</div>
<b>Responsive</b> cascade style sheets for TreeGrid Gantt chart column content.<br />
It is required only if used Gantt chart.<br />
Compatible with IE9+ and all modern browsers. A few minor features are disabled in IE9 and IE10.<br />
The file name prefix <i>style_name</i> is the style name, e.g. White.<br />
The CSS file includes all required images. The only external files not included by default in the CSS file is the TTF font file, but actual Gantt CSS does not define its fonts.<br />
The CSS file can be easily modified by changing its css sources in GridSrc/Grid/style_name/<a href="#GanttCssSrc">Gantt.css</a> and compiled by ../GridSrc/<b>ShrinkCSS.exe</b>.<br />
<b>How to change CSS styles is described in comments in the source Grid.css and Gantt.css.</b><br />
There are actually five predefined responsive CSS styles for TreeGrid Gantt chart.<br />
Every style has its own class prefix, so more <b>Gantt.css</b> styles can be included to one page at once.<br /> 
TreeGrid can have set different responsive CSS style for grid and Gantt. The Grid.css and Gantt.css use different class prefixes.<br />
The actual Gantt style is set by <tt>&lt;Cfg <b>GanttStyle</b>='...'/></tt> attribute.<br />
If the Gantt.css is moved, its path can be set by <tt>&lt;Cfg <b>GanttCSS</b>='...'/></tt>, relative to the actual page URL. <br />
Responsive CSS style can set their size by <tt>&lt;Cfg <b>Size</b>='...'/></tt>. 
There are nine predefined sizes: Tiny, Mini, Small, Low, Normal, Wide, High, Big, Giant.<br />
Only one style can be used by one grid at a time, but you can switch the styles at runtime. Also every grid on page can have its own style chosen.<br />
All files of unused CSS styles can be deleted if required.<br />

<!--Grid.css Src-->
<a name="GridCssSrc"></a>
<div class="ACT">
   <u>new <b>13.0</b></u> <b></b> <i>CSS</i>
   <h4>Grid.css</h4> <s>/GridSrc/Grid/<tt>style_name</tt>/</s>
</div>
<b>Source</b> file for responsive cascade style sheets for TreeGrid.<br />
They are not required to run TreeGrid.<br />
They can be modified and the changes compiled to original CSS files by ../GridSrc/<b>ShrinkCSS.exe</b> compiler.<br />

<!--Dialog.css Src-->
<a name="DialogCssSrc"></a>
<div class="ACT">
   <u>new <b>14.0</b></u> <b></b> <i>CSS</i>
   <h4>Dialog.css</h4> <s>/GridSrc/Dialog/<tt>style_name</tt>/</s>
</div>
<b>Source</b> file for responsive cascade style sheets for TreeGrid dialogs, menus, messages, inline edit, debug print, line chart and animations.<br />
They are not required to run TreeGrid.<br />
They can be modified and the changes compiled to original CSS files by ../GridSrc/<b>ShrinkCSS.exe</b> compiler.<br />

<!--Gantt.css Src-->
<a name="GanttCssSrc"></a>
<div class="ACT">
   <u>new <b>13.0</b></u> <b></b> <i>CSS</i>
   <h4>Gantt.css</h4> <s>/GridSrc/Gantt/<tt>style_name</tt>/</s>
</div>
<b>Source</b> file for responsive cascade style sheets for TreeGrid Gantt chart.<br />
They are not required to run TreeGrid.<br />
They can be modified and the changes compiled to original CSS files by ../GridSrc/<b>ShrinkCSS.exe</b> compiler.<br />

<!--ShrinkCSS.exe-->
<a name="ShrinkCSSExe"></a>
<div class="ACT">
   <u>new <b>13.0</b></u> <b></b> <i>Win EXE</i>
   <h4>ShrinkCSS.exe</h4> <s>/GridSrc/</s>
</div>
<b>CSS compiler</b>. Windows executable that compiles all source CSS files in /GridSrc/ directory and copies the results to /Grid/Styles/ directory. Overwrites the content in /Grid/Styles/.<br />
All the settings for the program are in <b>ShrinkCSS.ini</b> placed in the same directory as the program.<br />

<!--Grid.css Old-->
<a name="GridCssOld"></a>
<div class="ACT">
   <u></u> <b></b> <i>CSS</i>
   <h4>Grid.css</h4> <s>/Grid/Compatible/<tt>style_name</tt>/</s>
</div>
<b>Old compatible</b> cascade style sheets for TreeGrid.<br />
Compatible with all browsers including old IE6+ browsers.<br />
Every available TreeGrid style has its own subdirectory in /Grid directory and here are the <b>Grid.css</b> and <b>Gantt.css</b> files.<br />
The <b>Gantt.css</b> is required only if used Gantt chart. The <b>Grid.css</b> is required for both grid and Gantt.<br />
These files reference all the other image files in the style subdirectory. These image files are <u>not</u> accessed by TreeGrid script itself.<br />
There are eleven available styles now: <b>Standard</b>, <b>Light</b>, <b>Office</b>, <b>Gradient</b>, <b>Borders</b>, <b>Query</b>, <b>ExtJS</b>, <b>Material</b>, <b>Robust</b>, <b>Plain</b>, <b>Colors</b>.<br />
Every style has its own class prefix, so more <b>Grid.css</b> / <b>Gantt.css</b> styles can be included to one page at once.<br /> 
The actual style is set by <tt>&lt;Cfg <b>Style</b>='...'/></tt> attribute.<br />
If the Grid.css is moved, its path can be set by <tt>&lt;Cfg <b>CSS</b>='...'/></tt>, relative to the actual page URL.<br />
Only one style can be used by one grid at a time, but you can switch the styles at runtime. Also every grid on page can have its own style chosen.<br />
All unused styles, their subdirectories, can be deleted if required.<br />
<b>How to change CSS styles is described in comments in the Grid.css and Gantt.css.</b><br />

<!--Grid.css Old-->
<a name="GridCssOld"></a>
<div class="ACT">
   <u></u> <b></b> <i>CSS</i>
   <h4>Grid.css</h4> <s>/Grid/Compatible/<tt>style_name</tt>/</s>
</div>
<b>Old compatible</b> cascade style sheets for TreeGrid Gantt chart. See <a href="#GridCssOld">Grid.css</a>.<br />

<!--Drag.cur-->
<a name="DragCur"></a>
<div class="ACT">
   <u>chg <b>15.0</b></u> <b></b> <i>cursor</i>
   <h4>Drag.cur</h4> <s>/Grid/</s>
</div>
<i>Since 15.0</i> it is used only for <b>IE / Edge</b> browser or in compatible style. For other browsers in responsive styles it is defined in Dialog CSS style.<br />
Mouse cursor displayed when dragging row(s) or column(s).<br />
The file must be placed in the same directory as GridE.js.<br />
Can be redefined by &lt;Cfg DragCursor/>.<br />

<!--NoDrag.cur-->
<a name="NoDragCur"></a>
<div class="ACT">
   <u>chg <b>15.0</b></u> <b></b> <i>cursor</i>
   <h4>NoDrag.cur</h4> <s>/Grid/</s>
</div>
<i>Since 15.0</i> it is used only for <b>IE / Edge</b> browser or in compatible style. For other browsers in responsive styles it is defined in Dialog CSS style.<br />
Mouse cursor displayed when dragging row(s) or column(s) and drop is not possible.<br />
The file must be placed in the same directory as GridE.js.<br />
Can be redefined by &lt;Cfg NoDragCursor/>.<br />

<!--Ding.wav-->
<a name="DingWav"></a>
<div class="ACT">
   <u></u> <b></b> <i>sound</i>
   <h4>Ding.wav</h4> <s>/Grid/</s>
</div>
Beep played on error in EditMask when grid has set <tt>&lt;Cfg Silent='0'/></tt>.<br />
The file must be placed in the same directory as GridE.js.<br />

<!--Help.html-->
<a name="HelpHtml"></a>
<div class="ACT">
   <u></u> <b></b> <i>HTML</i>
   <h4>Help.html</h4> <s>/Grid/</s>
</div>
User help for TreeGrid. It is displayed after user clicks on <b>Help</b> button at control panel.<br /> 
Path and name you can change in input <i><b>XML data</b></i>, in attribute <tt>&lt;Cfg HelpFile='...'/>.</tt><br />
<i>Note, this file uses images from Standard style!</i><br />

<!--jszip.js-->
<a name="JsZip"></a>
<div class="XML">
   <u>new <b>12.1</b></u> <b>conditional</b> <i>JS</i>
   <h4>jszip.min.js</h4> <s>/Grid/External/</s>
</div>
JSZip is third party library for LZ compression. <br />
It is independent on TreeGrid. It is distributed under MIT or GPLv3 license.<br />
It can be downloaded or its licensing read at <a href="https://stuk.github.io/jszip/">https://stuk.github.io/jszip/</a>.<br />
It is loaded by TreeGrid only for client export to XLSX and import from XLSX.<br />
To not use it at all, set &lt;Cfg JSZip='0'/>, in this case the export will produce longer uncompressed XLSX files and the XLSX import will be disabled.<br />

<!--jszip.sync.js-->
<a name="JsZipSync"></a>
<div class="XML">
   <u>new <b>13.0</b></u> <b>conditional</b> <i>JS</i>
   <h4>jszip.min.sync.js</h4> <s>/Grid/External/</s>
</div>
Synchronous version of JSZip. It is used instead of <a href="#JsZip">jszip.min.js</a> when &lt;treegrid> <a href="DataCommunication.htm#Sync">Sync</a> is set.<br />

<!--canvg.js-->
<a name="canvg"></a>
<div class="XML">
   <u>new <b>15.0</b></u> <b>conditional</b> <i>JS</i>
   <h4>canvg.js</h4> <s>/Grid/External/</s>
</div>
canvg.js is third party library for converting SVG to PNG images.<br />
It is independent on TreeGrid. It is distributed under MIT license.<br />
It is loaded by TreeGrid only in Internet Explorer when exporting SVG images to XLSX. <br />

</div>
</body>	
</html>